Discretized Valve State Control For Multi-Level Hydraulic Systems

ABSTRACT

An actuation pressure to actuate one or more hydraulic actuators may be determined based on a load on the one or more hydraulic actuators of a robotic device. Based on the determined actuation pressure, a pressure rail from among a set of pressure rails at respective pressures may be selected. One or more valves may connect the selected pressure rail to a metering valve. The hydraulic drive system may operate in a discrete mode in which the metering valve opens such that hydraulic fluid flows from the selected pressure rail through the metering valve to the one or more hydraulic actuators at approximately the supply pressure. Responsive to a control state of the robotic device, the hydraulic drive system may operate in a continuous mode in which the metering valve throttles the hydraulic fluid such that the supply pressure is reduced to the determined actuation pressure.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a divisional of and claims priority to U.S.patent application Ser. No. 14/447,796, filed Jul. 31, 2014, andentitled “Discretized Valve State Control For Multi-Level HydraulicSystems,” which is herein incorporated by reference as if fully setforth in this description.

BACKGROUND

A robotic device, such as a legged robot, may have a hydraulic drivesystem which, in operation, supplies pressurized hydraulic fluid tohydraulic actuators on the robotic device. For instance, the roboticdevice may have robotic arms and/or legs driven by linear hydraulicactuators (e.g., hydraulic piston-cylinder assemblies). Pressurizedhydraulic fluid may cause the linear hydraulic actuators to actuate andthereby move the robotic arms and/or legs. An example legged robot mayhave one or more hydraulic actuators on each leg (e.g., hip, knee, andankle actuators). A pump of the hydraulic drive system may pressurizehydraulic fluid. The hydraulic drive system may supply the pressurizedhydraulic fluid to the hydraulic actuators on each leg. The hydraulicactuators may convert the pressure of the hydraulic fluid into forcethat moves the actuators, thus causing the legged robot to walk or run.

SUMMARY

In one example implementation, a hydraulic drive system of a roboticdevice may include a source of pressurized hydraulic fluid includingpressure rails at respective pressures. The pressure rails may include afirst pressure rail configured to be pressurized at a first pressure,and a second pressure rail configured to be pressurized at a secondpressure, where the second pressure is higher than the first pressure.The hydraulic drive system may also include a switch valve complexselectively operable between a discrete mode or a continuous mode, theswitch valve complex. The switch valve complex may include hydraulicfluid inputs of the switch valve complex, where the hydraulic fluidinputs of the switch valve complex include a first hydraulic fluid inputcoupled to the first pressure rail and a second hydraulic fluid inputcoupled to the second pressure rail, a hydraulic fluid output of theswitch valve complex, and a hydraulic fluid switch that selectivelyconnects one of the hydraulic fluid inputs of the switch valve complexto the hydraulic fluid output of the switch valve complex. The switchvalve complex may further include a metering valve comprising anadjustable throttle coupled between the one of the hydraulic fluidinputs and the hydraulic fluid output, where the adjustable throttle issubstantially open in the discrete mode, and wherein the adjustablethrottle is configured to meter the pressurized hydraulic fluid in thecontinuous mode.

In another example implementation, an actuation pressure to actuate oneor more hydraulic actuators may be determined based on a load on the oneor more hydraulic actuators of a robotic device. Based on the determinedactuation pressure, a pressure rail from among a set of pressure railsat respective pressures may be selected, where the selected pressurerail supplies pressurized hydraulic fluid at a supply pressure, andwhere the supply pressure is, among the respective pressures, at alowest pressure that exceeds the determined actuation pressure. One ormore valves may connect the selected pressure rail to a metering valvesuch that hydraulic fluid at approximately the supply pressure flowsfrom the selected pressure rail to the metering valve. The hydraulicdrive system may operate in a discrete mode in which the metering valveopens such that hydraulic fluid flows from the selected pressure railthrough the metering valve to the one or more hydraulic actuators atapproximately the supply pressure. Responsive to a control state of therobotic device, the hydraulic drive system may operate in a continuousmode in which the metering valve throttles the hydraulic fluid such thatthe supply pressure is reduced to approximately the determined actuationpressure.

Another example implementation may involve receiving, by a controlsystem of a robotic device, data indicating a magnitude of a load on ahydraulic actuator. Based on the magnitude of the load on the hydraulicactuator, an actuation pressure to actuate the load may be determined.The control system may cause one or more valves to select one of a firstpressure rail at a first pressure or a second pressure rail at a secondpressure, where the second pressure is higher than the first pressure.The method also involves determining, by the control system, that apressure difference between the pressure of the selected pressure railand the determined actuation pressure exceeds a tolerated pressuredifference. Responsive to the determination that the pressure differenceexceeds the tolerated pressure difference, a metering valve may throttlea flow of hydraulic fluid from the selected pressure rail to thehydraulic actuator such that the hydraulic fluid is at a throttledpressure that is within the tolerated pressure difference from thedetermined actuation pressure.

Another example implementation may include a means for determining anactuation pressure to actuate the one or more hydraulic actuators basedon a load on one or more hydraulic actuators of a robotic device. Theimplementation may include a means for selecting a pressure rail fromamong a set of pressure rails at respective pressures based on thedetermined actuation pressure, where the selected pressure rail suppliespressurized hydraulic fluid at a supply pressure, and where the supplypressure is, among the respective pressures, at a lowest pressure thatexceeds the determined actuation pressure. The implementation mayfurther include a means for causing one or more valves to connect theselected pressure rail to a metering valve such that hydraulic fluid atapproximately the supply pressure flows from the selected pressure railto the metering valve. The implementation may also include a means forcausing the hydraulic drive system to operate in a discrete mode inwhich the metering valve opens such that hydraulic fluid flows from theselected pressure rail through the metering valve to the one or morehydraulic actuators at approximately the supply pressure. Theimplementation may further include a means for causing the hydraulicdrive system to operate in the continuous mode in which the meteringvalve throttles the hydraulic fluid such that the supply pressure isreduced to approximately the determined actuation pressure.

These as well as other aspects, advantages, and alternatives, willbecome apparent to those of ordinary skill in the art by reading thefollowing detailed description, with reference where appropriate to theaccompanying figures.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a simplified block diagram illustrating components of anexample hydraulic drive system.

FIG. 2A is a simplified block diagram illustrating hydraulic fluidinterconnections between components of the example hydraulic drivesystem.

FIG. 2B is a simplified block diagram illustrating alternative hydraulicfluid interconnections between components of the example hydraulic drivesystem.

FIG. 2C is a simplified block diagram illustrating additionalalternative hydraulic fluid interconnections between components of theexample hydraulic drive system.

FIG. 3 illustrates an example linear switch valve.

FIG. 4 is a simplified block diagram illustrating components of anexample robotic device.

FIG. 5A is a side-view of an example robotic leg in a first arrangement.

FIG. 5B is a side-view of the example robotic leg in a secondarrangement.

FIG. 6 is a chart illustrating energy usage by an example legged roboticdevice while walking according to a gait.

FIG. 7 is a perspective view of an example legged robotic device.

FIG. 8 is a flowchart illustrating an example method for facilitatingthe operation of a hydraulic drive system in a discrete mode and acontinuous mode.

FIG. 9 is a side-view of an example robotic arm.

FIG. 10A is a chart illustrating energy usage in a metered hydraulicdrive system.

FIG. 10B is a chart illustrating energy usage in a discrete hydraulicdrive system.

FIG. 10C is a chart illustrating energy usage in a discrete hydraulicdrive system with metering.

FIG. 11 is a flowchart illustrating an example method for facilitatingthe operation of a hydraulic drive system to selectively meter discretepressure rails.

DETAILED DESCRIPTION

Example methods and systems are described herein. Any exampleimplementation or feature described herein is not necessarily to beconstrued as preferred or advantageous over other implementations orfeatures. The example implementations described herein are not meant tobe limiting. Certain aspects of the disclosed systems and methods can bearranged and combined in a wide variety of different configurations, allof which are contemplated herein.

Furthermore, the particular arrangements shown in the figures should notbe viewed as limiting. Other implementations might include more or lessof each element shown in a given figure. Further, some of theillustrated elements may be combined or omitted. Yet further, an exampleimplementation may include elements that are not illustrated in thefigures.

Example implementations provide for hydraulic drive systems that combinediscretized pressure rails at different pressures with metering. Forinstance, such a hybrid discretized and metered hydraulic drive systemmay include four selectable pressure rails providing 3000 PSI, 1500 PSI,750 PSI, and 300 PSI, respectively, in which one or more of the pressurerails can be metered to lower the supply pressure. Such a hybridhydraulic drive system may be implemented in a robotic device, such asthe example legged robot noted above.

The amount of force involved in performing an operation with hydraulicactuators of the robotic device may vary over time. For instance, alegged robotic device may walk according to a gait (i.e., a pattern ofmovement). Such a gait may involve lifting a leg up, stepping forward,and setting the leg back down to make contact with the ground. Liftingthe leg up may take less force than setting the leg back down to makecontact with the ground, since the load of the robotic device may be onanother member (e.g., one or more of the other legs) while the leg islifted. Then, when the leg makes contact with the ground, the load onthe hydraulic actuators increases from only the leg itself to at least aportion of the weight of the robotic device. Accordingly, to produce thegait, the hydraulic drive system may adjust the pressure of suppliedhydraulic fluid to the actuators in proportion to the varying forcesinvolved in actuating the hydraulic actuators. Further, the roboticdevice may repeat the gait as the robot walks or runs. Accordingly, therobotic device may provide varying pressures that repeat in a cycle.

As noted above, some operations performed by a robotic device mayinvolve supplying pressurized hydraulic fluid at varying pressures. Somehydraulic systems vary pressure by varying the speed of the hydraulicpump, which may in turn raise or lower the pressure of hydraulic fluidsupplied by the hydraulic drive system. Varying the pressure by varyingthe speed of the pump can be time-consuming, as the pump might not beable to instantaneously increase or decrease speed. Other hydraulicsystems may supply the lower pressure by metering (throttling) theoutput of the hydraulic pump. Such metering may produce quickeradjustments in pressure because a throttle may be capable of quickeradjustments than a pump. However, such metering may be inefficientbecause metering causes throttling losses in proportion to the amount bywhich the hydraulic fluid pressure is metered. Moreover, meteringproduces waste heat, which, in some cases, may require additional energyto dissipate. Applications that involve a wide variance in load (i.e.,including both large and small loads) can be especially inefficient whenthe high pressure supplied to handle the large load is metered down tohandle the small load. This may result in relatively large throttlinglosses.

Discretized hydraulic drive systems may include two or more discretepressure rails (e.g., pipes or tubes) having different pressure levels.For instance, an example discretized hydraulic drive system may includefour selectable pressure rails providing 3000 PSI, 1500 PSI, 750 PSI,and 300 PSI, respectively. A control system may switch between thepressure rails in an attempt to match the supply pressure (to aparticular actuator) to the force involved in a given operation. Theforce involved in actuating a load is proportional to the load and therate of actuation. Heavier loads and faster actuations require higherpressure than smaller loads and slower actuations. In one example, thelegged robot may be programmed to perform a first motion that involvesactuating a load requiring 2500 PSI of supply pressure. To actuate thisload, the control system may select the 3000 PSI pressure rail, as the3000 PSI pressure rail is sufficient to actuate the load. When thelegged robot is performing a second motion that involves actuating asmaller load requiring 200 PSI of supply pressure, the control systemmay select the 300 PSI pressure rail, as the 300 PSI pressure rail issufficient to actuate the smaller load. Such a hydraulic drive systemavoids throttling losses inherent in metering.

However, as illustrated above, in some situations, operation using adiscretized hydraulic drive system may result in a mismatch between theload and the supplied pressure. In the case of a legged robot driven bylinear hydraulic actuators, the differences between the suppliedpressure and the load may cause the gait produced by this type ofhydraulic drive system to be relatively more rough and jerky than thegait produced by a metered hydraulic drive system. For instance, if thehydraulic drive system supplies more pressure than called for by theload (e.g., supplying 3000 PSI for a load requiring 2500 PSI), theadditional pressure may result in increased acceleration of the actuator(as acceleration of a hydraulic actuator is proportional to pressure).Further, the desired actuator load varies with the terrain, creatingmismatches of varying degree between the desired and the supplied load.

In comparison, the metered hydraulic drive system may produce a smoothergait as compared with the discretized hydraulic drive system becausesuch a metered system may match the desired and delivered pressure withthe loads more precisely. However, unlike the metered hydraulic drivesystem, a discretized hydraulic drive system does not produce throttlinglosses.

A hybrid hydraulic drive system may have discrete pressure rails andmetering. For instance, one or more of the discrete pressure rails maybe metered to vary the pressure delivered to an actuator. Compared withconventional, metered hydraulic systems, a hybrid hydraulic drive systemmay reduce throttling losses inherent in metering by reducing thepressure difference between the supply pressure and the load. In theexample noted above, the legged robotic device may perform a firstmotion that involves actuating a load requiring 2500 PSI and may alsoperform a second motion that involves actuating a smaller load requiring200 PSI. In such a situation, the hydraulic drive system may select the3000 PSI pressure rail to actuate the 2500 PSI load and the 300 PSIpressure rail to actuate the smaller, 200 PSI load. Compared with ahydraulic drive system having a single pressure rail at 3000 PSI, thepressure difference between the load and supply pressure for actuatingthe second load is much lower with the hybrid system. Rather than apressure difference of 2800 PSI (3000 PSI−200 PSI), the pressuredifference is 100 PSI (300 PSI−200 PSI). Further, as the discretepressure rails may be metered to more closely track the load, such ahybrid hydraulic drive system on a legged robot may produce a smoothergait than a discretized hydraulic system.

Referring now to the figures, FIG. 1 is a simplified block diagramillustrating components of an example hydraulic drive system 100.Hydraulic drive system 100 includes a hydraulic pump complex 102, aswitch valve complex 112, and a metering valve 120. The hydraulic pumpcomplex may connect to the switch valve complex, which may in turnconnect to the metering valve.

The hydraulic pump complex 102 may include one or more pumps 104, one ormore accumulators 106, one or more reservoirs 108, and two or morepressure rails 110. In operation, the hydraulic pump complex 102 mayprovide a source of pressurized hydraulic fluid including pressure railsat respective pressures. For instance, the hydraulic pump complex 102may provide two, three, four, or five pressure rails. Additionalpressure rails may be included to provide greater granularity ofavailable pressure levels, but providing additional pressure rails atdifferent pressures may increase system complexity and mass.

The one or more pumps 104 may support pressurizing hydraulic fluid to aparticular pressure (e.g., 3000 PSI). A motor, such as fuel-powerinternal combustion engine, may drive the one or more pumps 104.Alternatively, a battery-powered electric motor may drive the one ormore pumps 104, because, in some cases, such a motor may provide greaterflexibility in speed range and/or reduce system complexity, among otherpossible benefits. A control system may vary the speed of the motor,thereby varying the speed of the one or more pumps 104, which results inincreased or decreased pressure of the pumped hydraulic fluid.

The hydraulic pump complex 102 may include a multi-pressure valve (notshown) connected between the one or more pumps 104 (e.g., a fixeddisplacement pump that provides a constant pressure) and the two or morepressure rails 110. Each pressure rail (e.g., a tube or pipe) of the twoor more pressure rails 110 may connect to a respective one of the one ormore accumulators 106. In operation, a control system may cause themulti-pressure valve to selectively connect the one or more pumps 104 toeach of the two or more pressure rails 110 for a period of time (e.g.,100 milliseconds). While a pressure rail is connected to the pump,pressurized hydraulic fluid may flow from the pump to the pressure rail.Some pressurized hydraulic fluid may be stored in the respectiveaccumulator for the pressure rail. The multi-pressure valve may vary thepressure of the pressure rail by varying how often the fixeddisplacement pump is connected to the pressure rail. More frequentconnections from the fixed displacement pump to the pressure rail resultin a higher pressure at the pressure rail, as more pressurized fluidflows to the pressure rail. Conversely, less frequent connections fromthe fixed displacement pump to the pressure rail result in a lowerpressure at the pressure rail. For instance, every 1.5 seconds, themulti-pressure valve may connect a first pressure rail for 800 ms, asecond pressure rail for 400 ms, a third pressure rail for 200 ms, and afourth pressure rail for 100 ms.

As noted above, the multi-pressure valve may vary the pressure of thepressure rail by varying how often one or more pumps 104 are connectedto the pressure rail. As pressurized hydraulic fluid flows from thepressure rails to other components of the hydraulic drive system, thecontrol system may maintain the pressure rails at different pressures byadjusting how frequently the one or more pumps 104 are connected to anypressure rail. The respective accumulator for the pressure rail maymaintain the pressure of the pressure rail while the pump is servicingother pressure rails.

For instance, respective pressure sensors on the pressure rails mayindicate the pressure of each pressure rail. Based on data from apressure sensor, the control system may detect that the pressure of oneof the pressure rails is lower than the nominal pressure of the pressurerail (e.g., that a 3000 PSI pressure rail has dropped to 2950 PSI). Inresponse, the control system may connect the one or more pumps 104 tothe pressure rail more often or for a longer duty cycle, which may inturn maintain the pressure of the pressure rail and/or replenishpressurized hydraulic fluid in the accumulator. In some cases, such aswhen the respective accumulators have reached nominal (desired) pressurelevels, the multi-pressure valve may connect the pump to the one or morereservoirs 108, one of which may be a return reservoir (i.e., a store ofhydraulic fluid for the one or more pumps 104). In this manner, thehydraulic pump complex 102 may provide pressurized hydraulic fluid at orapproximately at respective pressures.

The switch valve complex 112 may include multiple inputs 114, one ormore switches 116, and one or more outputs 118. The one or more inputs114 may connect to respective pressure rails 110 of the hydraulic pumpcomplex 102. In some implementations, a control system may cause the oneor more switches 116 to selectively connect one of the one or inputs 114to a single output of the one or more outputs 118, thereby allowingpressurized hydraulic fluid to flow from the connected pressure rail tothe single output, which may then in turn connect to another componentof the hydraulic drive system 100. In some cases, the inputs and outputsmay reverse operation and become outputs and inputs, respectively. Inthis configuration, one or more hydraulic actuators connected to theinput (previously the output) may push pressurized hydraulic fluid backthrough the switch valve complex 112 to the respective pressure rails110, which may result in regenerating some energy. Fluid from theactuators may also be pushed back to a return line, which may cause theactuator to coast or to act as a brake when the actuator is doingnegative work. In other implementations, the one or more switches 116may selectively connect two or more of the multiple inputs 114 torespective outputs of the one or more outputs 118. Such an arrangementmay facilitate connecting pressure rails at different pressures todifferent outputs, which may in turn connect to different hydraulicactuators.

The metering valve 120 includes at least one input 122, at least onethrottle 124, and at least one output 126. In operation, the at leastone throttle 124 may restrict the flow of hydraulic fluid flowing fromthe at least one input 122 to the at least one output 126. Suchrestriction may lower the pressure of the hydraulic fluid. The at leastone throttle 124 may be adjustable, such that it may throttle hydraulicfluid flowing from the at least one input 122 to the at least one output126 by a varying degree. A control system may connect to the at leastone throttle 124 and adjust the at least one throttle 124. In somecases, the control system may open the at least one throttle 124 suchthat the pressure of hydraulic fluid flowing through the at least onethrottle 124 is not substantially lowered. In some implementations, theat least one throttle 124 may be an electrically operated valve, such asan electrohydraulic servovalve. In other examples, the metering valve120 may include a directional valve by which the actuator may providebi-directional force or torque on a robotic joint. The control systemmay connect to such an electrically operated valve and cause the valveto open or close to various positions.

Some implementations of the switch valve complex may include themetering valve. For instance, the switch valve complex may include oneor more switches and one or more throttles. In such an example, athrottle may be in line of a flow of hydraulic fluid from an input to anoutput. Such a configuration may result in quicker hydraulic pressureadjustments, among other possible benefits.

In some implementations, a control system may operate the hydraulicdrive system in either a discrete mode or a continuous mode. In thediscrete mode, the control system may disable the throttle 124 andthereby supply pressure to hydraulic actuators at approximately thepressure of the selected pressure rail. In this mode, throttling lossesare approximately zero as the throttle 124 is disabled (e.g., the lossesmay be less than 5% due to pressure drops in the hydraulic drive systemand friction in the actuators and linkages). But, the control system canchoose only from the discrete pressure levels. In the continuous mode,the control system enables the throttle 124. Accordingly, in thecontinuous mode, the control system may cause the throttle 124 to reducethe hydraulic fluid pressure to various levels, which may allow thecontrol system to tune the hydraulic fluid pressure to a specific valueor range of values. For example, the control system may determine apressure at which to actuate a hydraulic actuator based on (i) a load onthe actuator and (ii) a rate at which the actuator should operate on theload. The control system may then cause the throttle 124 to reduce thehydraulic fluid pressure to the determined actuation pressure.

FIG. 2A is a simplified block diagram illustrating hydraulic fluidinterconnections between components of the example hydraulic drivesystem 100. Such interconnections are provided by way of example toillustrate possible interconnections between the components. As shown inFIG. 2A, pressure rails 110A, 110B, 110C, and 110D from the hydraulicpump complex 102 connect to the one or more inputs 114 on the switchvalve complex 112. The switch(es) 116 of the switch valve complex 112selectively connect one of pressure rails 110A, 110B, 110C, and 110D tothe at least one input 122 of the metering valve 120. The at least oneoutput 126 of the metering valve 120 may in turn connect to an output128 to one or more respective ports on one or more hydraulic actuators.

FIG. 2B is a simplified block diagram illustrating alternative hydraulicfluid interconnections between components of the example hydraulic drivesystem 100. As shown in FIG. 2B, pressure rails 110A, 110B, 110C, and110D from the hydraulic pump complex 102 connect to the one or moreinputs 114 on the switch valve complex 112. Two outputs of the one ormore outputs 118 from the switch valve complex 112 may connect tohydraulic actuators. One output of the outputs 118 from the switch valvecomplex 112 may connect to the at least one input 122 of the meteringvalve 120. The at least one output 126 of the metering valve 120 mayconnect to an output 128 to one or more hydraulic actuators. In thisarrangement, the switch valve complex 112 can selectively connectmetered or unmetered rails to the hydraulic actuators.

FIG. 2C is a simplified block diagram illustrating alternative hydraulicfluid interconnections between components of the example hydraulic drivesystem 100. As shown in FIG. 2B, pressure rails 110A, 110B, 110C, and110D from the hydraulic pump complex 102 may connect to the one or moreinputs 114 on the switch valve complex 112. Within the switch valvecomplex 112, a metering valve 120 may connect one of the one or moreinputs 114 to one output of the outputs 118, which may in turn connectto an output 128 to one or more hydraulic actuators.

FIG. 3 illustrates an example linear switch valve 300 that includes astator assembly 302 and input/output assembly 304. The switch valvecomplex 112 may include such a linear switch valve to connect the inputs114 to the output(s) 118. The stator assembly 302 may include a coil310. Current through the coil may cause a spool 306 of the input/outputassembly 304 to translate within a sleeve 308. Translation of the spoolmay connect one or more inputs to one or more outputs of theinput/output assembly 304. As noted above, in some implementations, theswitch valve complex 112 may include the metering valve.

FIG. 4 is a simplified block diagram illustrating components of anexample robotic device 400. The robotic device 400 may include a controlsystem 402, a sensing system 410, a hydraulic pump complex 412, a switchvalve complex 414, metering valve(s) 416, a locomotion system 418, and acommunication system 420. One or more of these components may beinterconnected by a bus or other interconnection system 422.

The control system 402 may include one or more processors 404,non-transitory data storage 406, and program instructions 408 stored onthe data storage 406. The one or more processors 404 may, for example,include a single or multi-core processor, an application specificintegrated circuit (ASIC), field programmable gate array (FPGA), and/orany other suitable circuitry. The program instructions 408 stored on thedata storage 406 may be executable by the one or more processors 404 toperform specific functions, which may include the specific functionsdescribed herein.

The hydraulic pump complex 412, the switch valve complex 414, and themetering valves 416 may be implemented as the hydraulic pump complex102, the switch valve complex 112, and the metering valve 120,respectively. However, variations from these examples are possible. Thehydraulic pump complex 412, the switch valve complex 414, and themetering valves 416 may function alone or in combination to providepressurized hydraulic fluid to the locomotion system 418. For instance,the functions of switching and metering can be combined, as with linearswitch valve 300.

The locomotion system 418 may include one or more limbs (e.g., one ormore legs and/or one or more arms). In some implementations, the roboticdevice may be a biped (i.e., a two-legged robot). In otherimplementations, the robotic device may be a quadruped (i.e., afour-legged robot). In yet further implementations, the robotic devicemay have three legs or six legs. Many alternatives are possible.

Each leg may be divided into one or more members. The members may berotably connected at one or more joints (e.g., “ankle,” “knee,” and/or“thigh” joints). One or more hydraulic actuators may move the one ormore members in relation to one another, causing the robotic device towalk or run.

FIG. 5A is a side-view of an example articulable robotic leg 500. Therobotic leg includes a member 502 having a first end that is connectedto the robotic device at joint 508. The member 502 has a second end thatis rotably connected to a first end of a member 504 at joint 506. Themember 504 has a second end that is connected to a foot member 514. Theexample robotic leg 500 also includes a linear hydraulic actuator 512connected between the member 504 and the robotic device. Actuation ofthe linear hydraulic actuator 512 causes the member 502 and the member504 to rotate around joint 508. Similarly, actuation of the linearhydraulic actuator 510 causes the member 504 to rotate around the joint506.

Actuating the linear hydraulic actuator 510 and the linear hydraulicactuator 512 in combination may cause the leg to take a step. Forinstance, linear hydraulic actuator 510 may retract, which causes member504 to rotate counter-clockwise around joint 506. This rotation mayraise the leg 500 up from the ground, as shown in FIG. 5B. Linearhydraulic actuator 512 may then retract, which causes member 502 torotate clockwise around joint 508. By rotating member 502 clockwisearound joint 508, foot member 514 moves forward relative to the ground.Linear hydraulic actuators 510 and 512 may then extend and thereby causeleg 500 to lower and push against the ground, thereby causing therobotic device to move forward.

The locomotion system 418 may move the robotic device 400 according to agait. The gait is a pattern of movement of the legs of the roboticdevice. The pattern of movement may involve a cyclical sequence ofactuations by the hydraulic actuators. During a cycle of the gait, eachleg may perform a stepping sequence, such as the stepping sequencedescribed above. For instance, a bipedal robot may step a right leg andthen a left leg during one cycle of a gait. Alternatively, the bipedalrobot may move the right leg and the left leg at the same time, perhapsin a relatively faster gait.

The robotic device may alternate between several different gaits. Forinstance, a bipedal robot may alternate between a walking gait and arunning gait. A quadruped robot may alternate between a walk, a run, anda gallop, among other possible gaits. The robotic device may moveaccording to different gaits by varying the timing of actuation, speedof actuation, and range of actuation of the hydraulic actuators. Theparticular gaits that a particular robotic device is capable ofperforming may depend upon the range of motion of its legs and the forceand velocity specifications of the hydraulic actuators. The range ofmotion of its legs may in turn depend upon the leg length and range oftravel of the linear actuators. Acceleration of the actuators isproportional to the pressure of the hydraulic fluid used to actuate thehydraulic actuator—with a given load, higher pressure results in greateracceleration. The control system may select a particular gait based onfactors such as speed, terrain, the need to maneuver, and/or energyefficiency. For instance, the robotic device may transition from a walkto a run as speed of locomotion is increased. The robotic device maythen transition back to a walk on uneven terrain.

Load on the hydraulic actuators may vary during the stepping sequence.During the portion of the gait in which the hydraulic actuators arecausing a leg to push against the ground, the load on the hydraulicactuators is relatively large compared to the portion of the gait inwhich the hydraulic actuators are raising the leg and stepping forward.As the load varies, the robotic device may vary the pressure supplied bythe hydraulic drive system to maintain the movement of the legsaccording to the gait.

FIG. 6 shows a plot 600 representing combined pressure at hydraulicactuators of a given leg of a robotic device during three cycles of agait. The x-axis of the plot is time and the y-axis is relativepressure. Point 602 on the plot 600 represents the pressure at thehydraulic actuators during the portion of the gait in which thehydraulic actuators are causing a leg to push against the ground. Point604 represents the pressure at the hydraulic actuators during theportion of the gait in which the hydraulic actuators are picking up theleg. Point 606 represents the pressure at the hydraulic actuators duringthe portion of the gait in which the hydraulic actuators are steppingthe leg forward. And point 608 represents the pressure at the hydraulicactuators during the portion of the gait in which the hydraulicactuators are lowering the leg to the ground. These pressures repeatover time as the pattern of movements of the gait are repeated. In somecases, such as when the terrain that the robotic device is traversingchanges, the average pressure may change between cycles, as shown.

Returning to FIG. 4, the sensing system 410 may include sensors arrangedto sense aspects of the robotic device 400 and the environment in whichthe robotic device 400 is operating. The sensing system 410 may connectto the control system 402 and thereby provide the control system 402with data from the sensors. The control system 402 may track and storethis sensor data and make operational determinations based on thetracked sensor data.

As noted above, the sensing system may include sensors arranged to senseaspects of the robotic device. The sensing system 410 may include one ormore force sensors arranged to measure load on various components of therobotic device. In one example, the sensing system may include one ormore force sensors on each leg. Such force sensors on the legs maymeasure the load on the hydraulic actuators that actuate the members ofthe leg.

The sensing system 410 may include one or more pressure sensors. One ormore pressure sensors may measure the pressure of the hydraulic fluid atthe hydraulic actuators. In some implementations, the sensing system 410may include a pressure sensor on each pressure rail.

The sensing system 410 may include one or more position sensors.Position sensors may sense the position of the hydraulic actuators ofthe robotic device. Position sensors may also sense the positions of thehydraulic actuators. In one implementation, position sensors may sensethe extension or retraction of the hydraulic actuators on the legs ofthe robotic device.

The sensing system 410 may include one or more position, velocity, oracceleration sensors. For instance, the sensing system 410 may includean inertial measurement unit (IMU). The inertial measurement unit maysense the robotic device's velocity, orientation, and acceleration. Thesensing system may include one or more global positioning system (GPS)devices. The GPS may sense the robotic devices absolute positions. Thecontrol system may use GPS data to determine the robotic device's speedor direction, possibly in combination with data from the IMU.

The sensing system 410 may include one or more perception sensorsarranged to sense the environment in which the robotic device 400 isoperating. One or more of the perception sensors may be mounted on therobotic device 400 and oriented in the direction of locomotion. Suchsensors may sense physical features of the environment, such as theterrain, vegetation, man-made objects and structures, and the like. Insome implementations, the perception sensors may include one or morelidar systems. Such lidar systems may generate data indicating a map ormodel of the physical features of the environment, which may then beused by the control system to navigate the robotic device, perhaps incombination with sensor data from the other sensors. In someimplementations, the perception sensors may include one or more cameras,such as one or more stereo cameras. For example, one or more stereocameras may generate three-dimensional images of the physical featuresof the environment. The control system may evaluate thethree-dimensional images to identify the physical features and theirposition relative to the robotic device. The perception sensors may alsoinclude one or more range finders, such as one or more laser rangefinders, which may generate data indicating distances from the roboticdevice to the physical features of the environment. The sensing system410 may include other types of perception sensors as well.

The communication system 420 may include one or more wired or wirelesscommunication interfaces that operate according to one or morecommunications protocols to facilitate data communications between therobotic device and other devices. For example, the communication system420 may include a Wi-Fi communication component that is configured tofacilitate wireless data communication according to one or more IEEE802.11 protocols. Alternatively, the communication system 420 mayinclude a cellular radio communication component that is configured tofacilitate wireless communication (voice and/or data) with a cellularwireless base station to provide mobile connectivity to a network. Manyother communication interfaces are known and available and the roboticdevice may include any suitable communication interface.

FIG. 7 is a perspective view of an example legged robotic device 700.Robotic device 700 includes a control system 702, a hydraulic drivesystem (not shown), a locomotion system that includes legs 706A, 706B,706C, and 706D, and a sensing system, of which perception sensor 704 isshown. Robotic device 700 is carrying a load 708.

Control system 702 of robotic device 700 may cause the robotic device700 to navigate an environment based on sensor data from the sensingsystem. The sensing system may include sensors of sensing system 410(e.g., perception sensor 704). The robotic device 700 may receivenavigation commands by way of the communication system 420. Forinstance, the robotic device may receive a command to move forward at 5kilometers per hour. The command may specify to walk forward for aparticular distance, such as 100 meters.

In some examples, the navigation commands may involve GPS coordinates.In one instance, a command may instruct the robotic device to navigateto a particular position, which may be defined by particular GPScoordinates. The robotic device may then cause the locomotion system tomove to the position while navigating physical features of the terrainidentified by the control system (perhaps based on data from theperception sensors). Another command may instruct the robotic device tofollow a particular person, who may have with them a GPS enabled devicethat generates data indicating the position of the person. The data maybe communicated to the robotic device which may then cause thelocomotion system to follow the person while navigating physicalfeatures of the terrain identified by the control system.

FIG. 8 is a flowchart illustrating example operation of a hydraulicdrive system in a discrete mode and a continuous mode. These operations,for example, could be used with the hydraulic drive system 100 in FIG.1, the robotic device 400 in FIG. 4, and/or the robotic device 700 inFIG. 7, for example, or may be performed by a combination of anycomponents of the hydraulic drive system 100 in FIG. 1, the roboticdevice 400 in FIG. 4, or the robotic device 700 in FIG. 7. FIG. 8 mayinclude one or more operations, functions, or actions as illustrated byone or more of blocks 802-810. Although the blocks are illustrated in asequential order, these blocks may in some instances be performed inparallel, and/or in a different order than those described herein. Also,the various blocks may be combined into fewer blocks, divided intoadditional blocks, and/or removed based upon the desired implementation.

In addition, for FIG. 8 and other processes and methods disclosedherein, the flowchart shows functionality and operation of one possibleimplementation of present implementations. In this regard, each blockmay represent a module, a segment, or a portion of program code, whichincludes one or more instructions executable by a processor forimplementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer-readable medium, forexample, such as a storage device including a disk or hard drive. Thecomputer-readable medium may include a non-transitory computer-readablemedium, for example, such as computer-readable media that stores datafor short periods of time like register memory, processor cache andrandom access memory (RAM). The computer-readable medium may alsoinclude other non-transitory media, such as secondary or persistent longterm storage, like read only memory (ROM), optical or magnetic disks,compact-disc read only memory (CD-ROM), for example. Thecomputer-readable media may also be any other volatile or non-volatilestorage system. The computer-readable medium may be considered acomputer-readable storage medium, a tangible storage device, or otherarticle of manufacture, for example. The program code (or data for thecode) may also be stored or provided on other media includingcommunication media. For instance, the commands may be received on awireless communication media, for example.

In addition, for FIG. 8 and other processes and methods disclosedherein, each block may represent circuitry that is arranged to performthe specific logical functions in the process.

Functions of FIG. 8 may be fully performed by a control system, or maybe distributed across multiple control systems. In some examples, thecontrol system may receive information from sensors of a robotic device,or the control system may receive the information from a processor thatcollects the information. The control system could further communicatewith a remote control system (e.g., a control system on another roboticdevice) to receive information from sensors of other devices, forexample.

At block 802, an actuation pressure to actuate the one or more hydraulicactuators is determined. Actuation pressure may be proportional to theload on the hydraulic actuator and the acceleration of the hydraulicactuator (i.e., the rate of actuation). Actuation pressure is inverselyproportional to the area or size of the actuator. The following formulasare illustrative:

${pressure} = {\frac{force}{area} = {\frac{{mass}{acceleration}}{area} = \frac{{load}{acceleration}}{area}}}$

A control system, such as control system 402 in FIG. 4, may determinethe actuation pressure based on a load on one or more hydraulicactuators of a robotic device. The control system may receive data fromforce sensors indicating the magnitude of the load on the one or morehydraulic actuators. The control system may then determine the actuationpressure to actuate the load based on the magnitude of the load. As theload increases, greater pressure is needed to actuate the load at agiven rate. Conversely, if the load decreases, less pressure is neededto actuate the load at the given rate.

In some cases, the area (or size) of the hydraulic actuator is fixed fora particular robotic device. For instance, the robotic device mayinclude one or more piston-cylinder hydraulic actuators having a fixeddiameter. However, in other cases, the robotic device may include arecruiting actuator. A recruiting actuator may increase or decrease itsarea, such as by enabling additional piston-cylinder assemblies.

The determined actuation pressure may also be proportional to thedesired acceleration of the one or more hydraulic actuators. Differentoperations may involve accelerating the one or more hydraulic actuatorsat different rates. For instance, causing the hydraulic actuators tomove the legs according to a walking gait at two kilometers per hour mayinvolve less acceleration than causing the hydraulic actuators to movethe legs according to the walking gait at three kilometers per hour, asthe movements of the actuators may speed up to cause the increasedwalking speed. Likewise, a running gait may involve greater accelerationof the hydraulic actuators than the walking gait.

The control system may maintain or have access to data that defines theseries of actuations that create a gait. The data may define differentseries of actuations for different gaits, such as a walking gait or arunning gait. For a given gait, the control system may scale the seriesof actuations to the desired speed—a higher speed requires quickeractuations (i.e., greater acceleration of the actuator).

In some cases, the load on the actuator or the desired rate of actuationmay be different among two or more actuators involved in actuating theload. For instance, a gait may involve actuating hydraulic actuators 610and 612 of robotic leg 600 in FIG. 6A at different rates. In such acase, the hydraulic drive system may supply pressurized hydraulic fluidat a first pressure to hydraulic actuator 610 and pressurized hydraulicfluid at a second pressure to hydraulic actuator 612. In some cases, theone or more hydraulic actuators may be divided into two or more groups(e.g., a first group and a second group) that may experience similarload and move at a similar rates. For instance, a “thigh” actuator(e.g., actuator 612) on each leg may be designed into the first groupand a “shin” actuator (e.g., actuator 610) on each leg may be designatedinto the second group. The hydraulic drive system may then supplypressurized hydraulic fluid at one pressure to the first group andpressurized hydraulic fluid at another pressure to the second group.

At block 804, a pressure rail may be selected from among a set ofpressure rails at respective pressures. In one case, the control systemmay cause one or more valves to select one of a first pressure rail at afirst pressure or a second pressure rail at a second pressure. As notedabove, in operation, the hydraulic drive system may supply pressurizedhydraulic fluid to pressure rails at respective pressures. The secondpressure may be higher than the first pressure. For instance, hydraulicdrive system 100 may supply pressurized hydraulic fluid to pressurerails 110A and 110B at 3000 PSI and 1500 PSI respectively. In anothercase, hydraulic drive system 100 may supply pressurized hydraulic fluidto pressure rails 110A, 110B, 110C, and 110D at 3000 PSI, 1500 PSI, 750PSI, and 300 PSI, respectively. The control system may then select oneof the pressure rails based on the determined actuation pressure.

In some cases, the control system may select the pressure rail that is,among the respective pressures, at the lowest pressure that exceeds thedetermined actuation pressure. For instance, the control system mayselect the first pressure rail when the determined actuation pressure isless than the first pressure and the second pressure rail is selectedwhen the determined actuation pressure exceeds the first pressure. Inanother example, as noted above, the hydraulic drive system may supply3000 PSI, 1500 PSI, 750 PSI, and 300 PSI to respective pressure rails.For a determined actuation pressure of 1250 PSI, the hydraulic drivesystem may select the pressure rail at 1500 PSI, as 1500 PSI is thepressure rail at the lowest pressure that exceeds 1250 PSI among thepressure rails at 3000 PSI, 1500 PSI, 750 PSI, and 300 PSI.

In other cases, the control system may select the pressure rail that is,among the respective pressures, at the pressure that is closest to thedetermined actuation pressure. As noted above, in one example, thehydraulic drive system may supply 3000 PSI, 1500 PSI, 750 PSI, and 300PSI to respective pressure rails. For a determined actuation pressure of800 PSI, the hydraulic drive system may select the pressure rail at 750PSI, as 800 PSI is the pressure rail at the closest pressure to 800 PSIamong the pressure rails at 3000 PSI, 1500 PSI, 750 PSI, and 300 PSI.

However, in some cases, the pressure rail closest to the determinedactuation pressure may at a pressure that is too low to actuate the loadat an acceptable or desired rate. Therefore, in some implementations,the control system may further determine whether the supply pressure isless than the determined actuation pressure by more than apre-determined threshold. For instance, for a determined actuationpressure of 2200 PSI, the hydraulic drive system may select the pressurerail at 1500 PSI, as 1500 PSI is the pressure rail at the closestpressure to 2200 PSI among the pressure rails at 3000 PSI, 1500 PSI, 750PSI, and 300 PSI. However, 1500 PSI may actuator the hydraulic actuatortoo slowly, as the force caused by the pressure is low. In this case,the supply pressure (1500 PSI) may be less than the determined actuationpressure (2200 PSI) by more than a pre-determined threshold (e.g., 100PSI). In such a case, the control system may select the pressure rail at3000 PSI, as that pressure rail is the pressure rail at the closestpressure to 2200 PSI in which the supply pressure is not less than thedetermined actuation pressure by more than the pre-determined threshold.

At block 806, one or more valves may connect the selected pressure railto a metering valve such that hydraulic fluid at approximately thesupply pressure flows from the selected pressure rail to the meteringvalve. For instance, the control system may cause a switch valvecomplex, such as switch valve complex 112 in FIG. 1, to connect pressurerail 110A at 3000 PSI to the metering valve 120. Some pressure loss mayresult from the flow of the hydraulic fluid through various linkages andvalves between the pressure rail and the metering valve. Accordingly,the hydraulic pressure may be at approximately the supply pressure(e.g., within 10% of the supply pressure).

At block 808, the hydraulic drive system may operate in a discrete modein which the metering valve opens such that hydraulic fluid flows fromthe selected pressure rail through the metering valve to the one or morehydraulic actuators at approximately the supply pressure. For instance,the control system may open metering valve 120 such that metering valve120 does not throttle hydraulic fluid passing through the meteringvalve. Then, hydraulic fluid flowing from the selected pressure rail(e.g., pressure rail 110A at 3000 PSI) may flow through the meteringvalve to the one or more hydraulic actuators at approximately the supplypressure (3000 PSI). As noted above, some pressure loss may result fromthe flow of the hydraulic fluid through various linkages and valves.

The control system may cause the hydraulic drive system to operate inthe discrete mode while in various control states. Such control statesmay be tolerant of operating without granular control of the supplypressure.

For instance, the control system may cause the hydraulic drive system tooperate in the discrete mode while the robotic device is movingaccording to particular gaits, such as a running gait or a trottinggait. The control system may maintain or have access to data indicatingthe present control state of the robotic device. This data may indicatethe particular gait, if any, that the robotic device is presenting usingto move. In one instance, based on such data, the control system maydetermine that the robotic device is moving according to a running gaitand then responsively cause the hydraulic system to operate in thediscrete mode.

In another instance, the control system may cause the hydraulic drivesystem to operate in the discrete mode while the robotic device ismoving above a particular speed. For instance, the control system mayreceive sensor data from a GPS sensor or IMU indicating the position orspeed of the robotic device. Alternatively, the control system mayreceive a command to move at a particular speed. The control system maythen determine that the speed exceeds a pre-determined threshold, suchas four miles per hour. Then, responsive to that determination, thecontrol system may cause the hydraulic drive system to operate in thediscrete mode.

In yet another instance, the control system may cause the hydraulicdrive system to operate in the discrete mode while the robotic device istraversing even terrain. For instance, the control system may receivesensor data indicating terrain that the robotic device is traversing.Perception sensors of a sensing system, such as sensing system 410, maygenerate data indicating physical features of the environment. Based onthe number, size, and nature of these physical features, the roboticdevice may determine whether the terrain that the robotic device istraversing is even or uneven. In an instance in which the control systemdetermines that the terrain is even, the control system may cause thehydraulic drive system to operate in the discrete mode. While traversingeven terrain, the robotic device may be more tolerant of mismatchesbetween the determined actuation pressure and the supply pressure. Suchtolerance may result from the load on the hydraulic actuators being morebalanced while traversing even terrain than while traversing uneventerrain. Further, even terrain may result in less variance over time inthe load on the hydraulic actuators.

In yet another instance, the control system may cause the hydraulicdrive system to operate in the discrete mode in response to detectingthat energy reserves are at or below a pre-determined threshold. Asnoted above, a fuel-powered internal combustion engine may drive thepump 104 of the hydraulic drive system 100. The robotic device may havea tank or other storage container that can carry a certain amount offuel. The tank may have a fuel gauge that generates data indicating thefuel level in the tank. The control system may receive this data fromthe fuel gauge and detect that the fuel level has fallen below apre-determined threshold. In response to detecting that the fuel levelhas fallen below a pre-determined threshold, the control system mayenable the discrete mode. In this manner, the control system mayconserve fuel by operating in the discrete mode while fuel levels arerelatively low.

At block 810, the hydraulic drive system may operate in the continuousmode in which the metering valve throttles the hydraulic fluid such thatthe supply pressure is reduced to approximately the determined actuationpressure.

The control system may cause the hydraulic drive system to operate inthe continuous mode while in various other control states. Such controlstates may be less tolerant of operating without granular control of thesupply pressure. The continuous control state may result in moredeliberate movements and greater balance because the metering tunes thesupply pressure to more closely match the determined actuation pressure.

For instance, the control system may cause the hydraulic drive system tooperate in the continuous mode while the robotic device is movingaccording to particular gaits, such as a walking or climbing gait. Asnoted above, the control system may maintain or have access to dataindicating the present control state of the robotic device. This datamay indicate the particular gait, if any, that the robotic device iscurrently using to move. Based on such data, the control system maydetermine that the robotic device is moving according to the walkinggait and then responsively cause the hydraulic system to operate in thecontinuous mode.

In another instance, the control system may cause the hydraulic drivesystem to operate in the continuous mode while the robotic device ismoving below a particular speed. For instance, the control system mayreceive sensor data from a GPS sensor or IMU indicating the position orspeed of the robotic device. The control system may then determine thatthe speed is under a pre-determined threshold, such as four miles perhour. Then, responsive to that determination, the control system maycause the hydraulic drive system to operate in the continuous mode.

In yet another instance, the control system may cause the hydraulicdrive system to operate in the continuous mode while the robotic deviceis traversing uneven terrain. As noted above, the control system mayreceive sensor data indicating terrain that the robotic device istraversing. Based on this data, the robotic device may determine whetherthe terrain that the robotic device is traversing is even or uneven. Inan instance in which the control system determines that the terrain isuneven, the control system may cause the hydraulic drive system tooperate in the continuous mode. While traversing uneven terrain, therobotic device may be less tolerant of mismatches between the determinedactuation pressure and the supply pressure. In contrast to traversingeven terrain, while traversing uneven terrain, the load on the hydraulicactuators may be less balanced as the ground underneath the respectivelegs may be at different levels. Further, uneven terrain may causevariance in the load on the hydraulic actuators.

In yet another instance, the control system may cause the hydraulicdrive system to operate in the continuous mode based on detecting thatenergy reserves are at or above a pre-determined threshold. Forinstance, the control system may receive this data from a fuel gauge anddetect that the fuel level remains at or above a pre-determinedthreshold. In response to detecting that the fuel level is at or above apre-determined threshold, the control system may enable the continuousmode.

In some cases, the robotic device may include a robotic manipulator,such as a robotic arm. FIG. 9 is a side-view of an example articulablerobotic arm 900 that includes a member 902 coupled to a member 904. Alinear hydraulic actuator 906 may cause the member 904 to rotaterelative to the member 904. The robotic arm 900 also includes a forcesensor 908 that generates data indicating the load on the linearhydraulic actuator 906. The robotic arm 900 also includes an endeffector 910 that may pick up an object.

The control system may cause the robotic device to operate in thecontinuous mode when the robotic manipulator is picking up an object.For instance, the control system may receive sensor data from forcesensor 908. The sensor data may indicate that the load on the linearhydraulic actuator 906 has increased. Based on the sensor data, thecontrol system may determine that end effector 910 is picking up anobject. In response to that determination, the control system may causethe robotic device to operate in the continuous mode. Operating in acontinuous mode while the robotic device is picking up the object mayhave several benefits. One possible benefit is that the continuous modemay facilitate the robotic device maintaining balance while picking upthe object. Another possible benefit is that the linear hydraulicactuator 906 may move more deliberately, which may prevent damage to theobject.

As noted above, in some cases, the robotic device may carry a payload.For instance, robotic device 900 in FIG. 9 may carry payload 908. Thecontrol system may receive data from force sensors that generate dataindicating the magnitude of the payload. The force sensors may bedistributed among the legs of the robotic device. Based on data fromsuch sensors, the control system may determine that the robotic deviceis carrying an unbalanced payload. For instance, the sensor data mayindicate that the load on the right leg(s) is greater than the load onthe left legs. In response to determining that the robotic device iscarrying an unbalanced payload, the robotic device may cause thehydraulic drive system to operate in the continuous mode. The continuousmode may facilitate the robotic device maintaining balance whilecarrying the unbalanced payload.

In some implementations, the control system may cause the hydraulicdrive system to operate in the continuous mode or the discrete modebased on whether a pressure difference between the pressure of theselected pressure rail and the determined actuation pressure exceeds atolerated pressure difference. The tolerated pressure difference mayvary by application and/or task. For instance, during balancing tasksthe tolerated pressure difference may be smaller (e.g., 0-100 PSI).During other tasks, the tolerated pressure difference may be larger(e.g., 100-500 PSI).

For example, the control system may determine that the pressuredifference between the pressure of the selected pressure rail and thedetermined actuation pressure exceeds a tolerated pressure difference.In response to that determination, the control system may cause ametering valve, such as metering valve 120, to throttle a flow ofhydraulic fluid from the selected pressure rail to the hydraulicactuator such that the hydraulic fluid is at a throttled pressure thatis within the tolerated pressure difference from the determinedactuation pressure. In this case, a mismatch between the determinedactuation pressure and the supply pressure may exist, but the mismatchmay be less than the tolerated pressure difference.

The control system may adjust the tolerated pressure difference based onthe control state. For instance, the control system may adjust thetolerated pressure difference to a first pressure difference while therobotic device is in control states that call for the continuous mode,as noted above. And the control system may adjust the tolerated pressuredifference to a second larger pressure difference while the roboticdevice is in control states that call for the discrete mode, as notedabove. Then, the computing device may determine that the pressuredifference between the pressure of the selected pressure rail and thedetermined actuation pressure is less than the second tolerated pressuredifference, and, in response, cause the metering valve to open such thathydraulic fluid flowing from the selected pressure rail to the actuatoris unthrottled.

As noted above, a gait of the robotic device may be cyclical. A cycle ofthe gait may involve causing a leg to raise from a support surface androtate forward relative to the frame, and then causing the leg to lowerto the support surface and rotate backward relative to the frame. Acontrol system may cause multiple legs to perform these operations,perhaps offset in time from one another during the cycle of the gait.During a cycle of a gait, the control system may adjust the toleratedpressure difference. For instance, after causing the at least one leg toraise from the support surface and rotate forward relative to the frame,the control system may adjust the tolerated pressure difference to asmaller tolerated pressure difference. Then, the control system maycause the at least one leg to lower to the support surface and rotatebackward relative to the frame. Adjusting the tolerated pressuredifference to a smaller tolerated pressure difference before causing theat least one leg to lower to the support surface may result in moreprecisely positioning a “foot” of the leg on the support surface. Insome circumstances, this may improve stability of the robotic device.

The control system may adjust the tolerated pressure difference based onother conditions. For instance, the control system may receive sensordata, such as data from one or more of the force sensors on a leg of therobot device, which indicates that the leg is slipping. Such data mayinclude fluctuations in load, such as may result from the leg slipping.Based on such received data, the control system may determine that theat least one leg is slipping at a rate greater than a pre-determinedthreshold rate. Some amount of slipping may be acceptable, and may bemore common in certain types of terrain, such as wet or snowy terrain.Too much slipping may cause the control system to adjust the thresholdto a smaller tolerated pressure difference. For instance, the controlsystem may determine that the leg slipped more than four times duringthe last ten gait cycles. In another instance, the control system maydetermine that the leg slipped during more than 20% of the gait cyclesover the past kilometer of travel. Many types of similar conditions anddeterminations are possible as well. Based on such a determination, thecontrol device may adjust the tolerated pressure difference to thesmaller tolerated pressure difference.

As noted above, in some circumstances, a hydraulic drive system withdiscrete pressure levels may use less energy than some conventionalhydraulic systems that implement metering. FIG. 10A is a chartillustrating energy usage in a conventional hydraulic drive system. They-axis indicates relative force and the x-axis indicates time. The plot1002 indicates a desired and achieved force profile. Such a forceprofile may represent aggregate determined actuation pressures. Ametering valve may throttle pressurized hydraulic fluid to the match theforce profile. Such throttled hydraulic fluid may cause a hydraulicactuator to actuate in a particular way. The diagonally-hatched areaindicates energy consumed by the hydraulic system. As shown, the energyconsumption is at a constant 100% consumption over time. Thevertically-hatched area indicates throttling losses induced in order toachieve the desired force profile. As shown, the throttling losses areequivalent to the supplied force less the energy consumed in actuatingthe actuator according to the force profile. In this case, thethrottling losses are larger than the force needed to actuate theactuator. Therefore, such a hydraulic system can be wasteful.

FIG. 10B is a chart illustrating energy usage in a discrete hydraulicdrive system having eight discrete pressure levels. The y-axis indicatesrelative force and the x-axis indicates time. The plot 1002 indicates adesired force profile. As shown, the hydraulic drive system changespressure level to approximately follow the force profile. However, thecontrol system might not cause the hydraulic drive system to follow theforce profile precisely, as the control system can only select from thediscrete force levels. However, under this approach, the energyconsumption is not at a constant 100% consumption over time. Rather, asshown, the energy consumption varies according to the discrete pressurelevels chosen to approximately follow the force profile. Further,because the hydraulic drive system does not throttle, no throttlinglosses are produced. Therefore, there is a tradeoff—no throttling lossesare produced, but pressures are not always what is desired.

FIG. 10C is a chart illustrating energy usage in a discrete hydraulicdrive system with metering. The y-axis indicates relative force and thex-axis indicates time. The plot 1002 indicates a desired and achievedforce profile. As shown, the hydraulic drive system changes pressurelevel to follow the force profile. But, unlike the discrete hydraulicdrive system without metering, the control system can cause thehydraulic drive system to meter the supplied pressure to and therebyfollow the force profile precisely. While this hydraulic drive systemproduces some throttling losses, the throttling losses are much lessthan the throttling losses produced by a conventional hydraulic system,as shown in FIG. 10A. Therefore, the advantage with a discrete hydraulicdrive system with metering is that the hydraulic drive system can tunehydraulic fluid pressure to desired force while at the same timeincurring smaller throttling losses compared to a metered hydraulicsystem.

FIG. 11 is a flowchart illustrating example operation of a hydraulicdrive system in a discrete mode and a continuous mode. These operations,for example, could be used with the hydraulic drive system 100 in FIG.1, the robotic device 400 in FIG. 4, and/or the robotic device 700 inFIG. 7, for example, or may be performed by a combination of anycomponents of the hydraulic drive system 100 in FIG. 1, the roboticdevice 400 in FIG. 4, or the robotic device 700 in FIG. 7. FIG. 11 mayinclude one or more operations, functions, or actions as illustrated byone or more of blocks 1102-1110. Although the blocks are illustrated ina sequential order, these blocks may in some instances be performed inparallel, and/or in a different order than those described herein. Also,the various blocks may be combined into fewer blocks, divided intoadditional blocks, and/or removed based upon the desired implementation.

In addition, for FIG. 11 and other processes and methods disclosedherein, the flowchart shows functionality and operation of one possibleimplementation of present implementations. In this regard, each blockmay represent a module, a segment, or a portion of program code, whichincludes one or more instructions executable by a processor forimplementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer-readable medium, forexample, such as a storage device including a disk or hard drive. Thecomputer-readable medium may include a non-transitory computer-readablemedium, for example, such as computer-readable media that stores datafor short periods of time like register memory, processor cache andrandom access memory (RAM). The computer-readable medium may alsoinclude other non-transitory media, such as secondary or persistent longterm storage, like read only memory (ROM), optical or magnetic disks,compact-disc read only memory (CD-ROM), for example. Thecomputer-readable media may also be any other volatile or non-volatilestorage system. The computer-readable medium may be considered acomputer-readable storage medium, a tangible storage device, or otherarticle of manufacture, for example. The program code (or data for thecode) may also be stored or provided on other media includingcommunication media. For instance, the commands may be received on awireless communication media, for example.

In addition, for FIG. 11 and other processes and methods disclosedherein, each block may represent circuitry that is arranged to performthe specific logical functions in the process.

Functions of FIG. 11 may be fully performed by a control system, or maybe distributed across multiple control systems. In some examples, thecontrol system may receive information from sensors of a robotic device,or the control system may receive the information from a processor thatcollects the information. The control system could further communicatewith a remote control system (e.g., a control system on another roboticdevice) to receive information from sensors of other devices, forexample.

At block 1102, data indicating a magnitude of a load on a hydraulicactuator may be received. For instance, control system 402 may receivedata indicating a magnitude of a load on a hydraulic actuator oflocomotion system 418.

At block 1104, an actuation pressure to actuate the load may bedetermined based on the magnitude of the load on the hydraulic actuator.For example, based on the magnitude of the load on the hydraulicactuator, control system 402 may determine an actuation pressure toactuate the load.

At block 1106, one or more valves may select one of a first pressurerail at a first pressure or a second pressure rail at a second pressure.For instance, control system 402 may cause switch valve complex 414 toselect one of a first pressure rail at a first pressure or a secondpressure rail at a second pressure.

At block 1108, the implementation may involve determining that apressure difference between the pressure of the selected pressure railand the determined actuation pressure exceeds a tolerated pressuredifference. For instance, control system 402 may determine that apressure difference between the pressure of the selected pressure railand the determined actuation pressure exceeds a tolerated pressuredifference.

At block 1110, responsive to the determination that the pressuredifference exceeds the tolerated pressure difference, a metering valvemay throttle a flow of hydraulic fluid from the selected pressure railto the hydraulic actuator such that the hydraulic fluid is at athrottled pressure that is within the tolerated pressure difference fromthe determined actuation pressure. For instance, control system 402 maycause metering valve(s) 416 to throttle a flow of hydraulic fluid fromthe selected pressure rail to the hydraulic actuator.

It should be understood that arrangements described herein are forpurposes of example only. As such, those skilled in the art willappreciate that other arrangements and other elements (e.g. machines,interfaces, functions, orders, and groupings of functions, etc.) can beused instead, and some elements may be omitted altogether according tothe desired results. Further, many of the elements that are describedare functional entities that may be implemented as discrete ordistributed components or in conjunction with other components, in anysuitable combination and location, or other structural elementsdescribed as independent structures may be combined.

While various aspects and implementations have been disclosed herein,other aspects and implementations will be apparent to those skilled inthe art. The various aspects and implementations disclosed herein arefor purposes of illustration and are not intended to be limiting, withthe true scope being indicated by the following claims, along with thefull scope of equivalents to which such claims are entitled. It is alsoto be understood that the terminology used herein is for the purpose ofdescribing particular implementations only, and is not intended to belimiting.

What is claimed is:
 1. A method comprising: receiving, by a controlsystem of a robotic device, data indicating a magnitude of a load on ahydraulic actuator; based on the magnitude of the load on the hydraulicactuator, determining, by the control system, an actuation pressure toactuate the load; causing, by the control system, one or more valves toselect one of a first pressure rail at a first pressure or a secondpressure rail at a second pressure, wherein the second pressure ishigher than the first pressure, and wherein the first pressure rail isselected when the determined actuation pressure is less than the firstpressure and the second pressure rail is selected when the determinedactuation pressure exceeds the first pressure; determining, by thecontrol system, that a pressure difference between the pressure of theselected pressure rail and the determined actuation pressure exceeds atolerated pressure difference; and responsive to the determination thatthe pressure difference exceeds the tolerated pressure difference,causing a metering valve to throttle a flow of hydraulic fluid from theselected pressure rail to the hydraulic actuator such that the hydraulicfluid is at a throttled pressure that is within the tolerated pressuredifference from the determined actuation pressure.
 2. The method ofclaim 1, further comprising: determining, by the control system, thatthe pressure difference between the pressure of the selected pressurerail and the determined actuation pressure does not exceed the toleratedpressure difference; and responsive to the determination that thepressure difference does not exceed the tolerated pressure difference,causing the metering valve to open such that hydraulic fluid flowingfrom the selected pressure rail to the actuator is unthrottled.
 3. Themethod of claim 1, further comprising: receiving, by the control system,data indicating a second tolerated pressure difference between thedetermined actuation pressure and the pressure of the selected pressurerail; determining, by the control system, that a pressure differencebetween the pressure of the selected pressure rail and the determinedactuation pressure is less than the second tolerated pressuredifference; and responsive to the determination that the pressuredifference is less than the tolerated pressure difference, causing themetering valve to open such that hydraulic fluid flowing from theselected pressure rail to the actuator is unthrottled.
 4. The method ofclaim 1, further comprising: supplying, by a hydraulic drive system, thefirst pressure to the first pressure rail and the second pressure to thesecond pressure rail.
 5. The method of claim 1, wherein causing themetering valve to throttle the flow of hydraulic fluid from the selectedpressure rail to the hydraulic actuator comprises: causing the meteringvalve to throttle the flow of hydraulic fluid from the selected pressurerail to the hydraulic actuator such that the hydraulic fluid pressure isreduced to approximately the determined actuation pressure.
 6. Themethod of claim 1, wherein the robotic device comprises at least one legrotatably coupled to a frame, the method further comprising: causing theat least one leg to raise from a support surface and rotate forwardrelative to the frame; after causing the at least one leg to raise fromthe support surface and rotate forward relative to the frame, adjustingthe tolerated pressure difference to a smaller tolerated pressuredifference; and after adjusting the tolerated pressure difference to asmaller tolerated pressure difference, causing the at least one leg tolower to the support surface and rotate backward relative to the frame.7. The method of claim 1, further comprising: receiving, from one ormore sensors on the robotic device, data indicative of one or morephysical features of an environment in which the robotic device isoperating; and determining the tolerated pressure difference based onthe data indicative of the one or more physical features of theenvironment, wherein the tolerated pressure difference is set to a firsttolerated pressure difference when the data indicative of the one ormore physical features of the environment indicates that the roboticdevice is traversing even terrain, wherein the tolerated pressuredifference is set to a second tolerated pressure difference when thedata indicative of the one or more physical features of the environmentindicates that the robotic device is traversing uneven terrain, andwherein the first tolerated pressure difference is greater than thesecond tolerated pressure difference.
 8. The method of claim 1, furthercomprising: determining an energy reserve of the robotic device; anddetermining the tolerated pressure difference based on the determinedenergy reserve, wherein the tolerated pressure difference is set to afirst tolerated pressure difference when the energy reserve is below athreshold level, wherein the tolerated pressure difference is set to asecond tolerated pressure difference when the energy reserve is abovethe threshold level, and wherein the first tolerated pressure differenceis greater than the second tolerated pressure difference.
 9. The methodof claim 1, wherein the robotic device comprises at least one leg, themethod further comprising: receiving, from one or more sensors on therobotic device, sensor data indicating an extent of slipping of the atleast one leg; and determining the tolerated pressure difference basedon the sensor data indicating the extent of slipping of the at least oneleg, wherein the tolerated pressure difference is set to a firsttolerated pressure difference when the extent of slipping is below athreshold, wherein the tolerated pressure difference is set to a secondtolerated pressure difference when the extent of slipping is above thethreshold, and wherein the first tolerated pressure difference isgreater than the second tolerated pressure difference.
 10. The method ofclaim 1, further comprising: determining a gait for the robotic deviceto use in moving through an environment; and determining the toleratedpressure difference based on the determined gait.
 11. The method ofclaim 1, further comprising: determining a speed at which the roboticdevice is moving through an environment; and determining the toleratedpressure difference based on the determined speed, wherein the toleratedpressure difference is set to a first tolerated pressure difference whenthe determined speed is above a threshold, wherein the toleratedpressure difference is set to a second tolerated pressure differencewhen the determined speed is below the threshold, and wherein the firsttolerated pressure difference is greater than the second toleratedpressure difference.
 12. A system comprising: a hydraulic actuator of arobotic device; a first pressure rail at a first pressure; a secondpressure rail at a second pressure higher than the first pressure; oneor more valves; a metering valve; and a control system configured to:receive data indicating a magnitude of a load on the hydraulic actuator;based on the magnitude of the load on the hydraulic actuator, determinean actuation pressure to actuate the load; cause the one or more valvesto select one of the first pressure rail or the second pressure rail,and wherein the first pressure rail is selected when the determinedactuation pressure is less than the first pressure and the secondpressure rail is selected when the determined actuation pressure exceedsthe first pressure; determine that a pressure difference between thepressure of the selected pressure rail and the determined actuationpressure exceeds a tolerated pressure difference; and responsive to thedetermination that the pressure difference exceeds the toleratedpressure difference, cause the metering valve to throttle a flow ofhydraulic fluid from the selected pressure rail to the hydraulicactuator such that the hydraulic fluid is at a throttled pressure thatis within the tolerated pressure difference from the determinedactuation pressure.
 13. The system of claim 12, wherein the controlsystem is further configured to: receive data indicating a secondtolerated pressure difference between the determined actuation pressureand the pressure of the selected pressure rail; determine that apressure difference between the pressure of the selected pressure railand the determined actuation pressure is less than the second toleratedpressure difference; and responsive to the determination that thepressure difference is less than the tolerated pressure difference,cause the metering valve to open such that hydraulic fluid flowing fromthe selected pressure rail to the actuator is unthrottled.
 14. Thesystem of claim 12, further comprising: a hydraulic drive systemconfigured to supply the first pressure to the first pressure rail andthe second pressure to the second pressure rail.
 15. The system of claim12, wherein the control system is configured to cause the metering valveto throttle the flow of hydraulic fluid from the selected pressure railto the hydraulic actuator by: causing the metering valve to throttle theflow of hydraulic fluid from the selected pressure rail to the hydraulicactuator such that the hydraulic fluid pressure is reduced toapproximately the determined actuation pressure.
 16. The system of claim12, wherein the robotic device comprises at least one leg rotatablycoupled to a frame, and wherein the control system is further configuredto: cause the at least one leg to raise from a support surface androtate forward relative to the frame; after causing the at least one legto raise from the support surface and rotate forward relative to theframe, adjust the tolerated pressure difference to a smaller toleratedpressure difference; and after adjusting the tolerated pressuredifference to a smaller tolerated pressure difference, cause the atleast one leg to lower to the support surface and rotate backwardrelative to the frame.
 17. A non-transitory computer readable mediumhaving stored thereon instructions that, when executed by a computingdevice, cause the computing device to perform operations comprising:receiving data indicating a magnitude of a load on a hydraulic actuator;based on the magnitude of the load on the hydraulic actuator,determining an actuation pressure to actuate the load; causing one ormore valves to select one of a first pressure rail at a first pressureor a second pressure rail at a second pressure, wherein the secondpressure is higher than the first pressure, and wherein the firstpressure rail is selected when the determined actuation pressure is lessthan the first pressure and the second pressure rail is selected whenthe determined actuation pressure exceeds the first pressure;determining that a pressure difference between the pressure of theselected pressure rail and the determined actuation pressure exceeds atolerated pressure difference; and responsive to the determination thatthe pressure difference exceeds the tolerated pressure difference,providing instructions to cause a metering valve to throttle a flow ofhydraulic fluid from the selected pressure rail to the hydraulicactuator such that the hydraulic fluid is at a throttled pressure thatis within the tolerated pressure difference from the determinedactuation pressure.
 18. The non-transitory computer readable medium ofclaim 17, wherein the operations further comprise: receiving dataindicating a second tolerated pressure difference between the determinedactuation pressure and the pressure of the selected pressure rail;determining that a pressure difference between the pressure of theselected pressure rail and the determined actuation pressure is lessthan the second tolerated pressure difference; and responsive to thedetermination that the pressure difference is less than the toleratedpressure difference, providing instructions to cause the metering valveto open such that hydraulic fluid flowing from the selected pressurerail to the actuator is unthrottled.
 19. The non-transitory computerreadable medium of claim 17, wherein the operations further comprise:providing instructions to cause a hydraulic drive system to supply thefirst pressure to the first pressure rail and the second pressure to thesecond pressure rail.
 20. The non-transitory computer readable medium ofclaim 17, wherein providing instructions to cause the metering valve tothrottle the flow of hydraulic fluid from the selected pressure rail tothe hydraulic actuator comprises: providing instructions to cause themetering valve to throttle the flow of hydraulic fluid from the selectedpressure rail to the hydraulic actuator such that the hydraulic fluidpressure is reduced to approximately the determined actuation pressure.